// 视频相关服务

// 保存视频数据到localStorage的函数
const saveVideos = () => {
  localStorage.setItem('mockVideos', JSON.stringify(mockVideos));
};

// 默认视频数据
const defaultVideos = [
  {
    id: '1',
    title: '速度与激情9',
    description: '《速度与激情9》是由林诣彬执导，范·迪塞尔、约翰·塞纳、米歇尔·罗德里格兹等主演的动作片。\n\n多姆·托莱多和他的团队面对一个意想不到的对手——他的亲弟弟雅各布。雅各布是一名致命的刺客和顶级车手，他与一个危险的犯罪组织合作，意图实现世界霸权。\n\n影片带来了更多令人难以置信的动作场面，包括在太空中的惊人追逐场景，同时继续探索家庭和忠诚的主题。',
    cover: 'https://picsum.photos/id/20/1280/720',
    videoUrl: 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
    director: '林诣彬',
    actors: ['范·迪塞尔', '约翰·塞纳', '米歇尔·罗德里格兹', '泰瑞斯·吉布森'],
    rating: '8.7',
    releaseDate: '2021-05-21',
    duration: '142分钟',
    views: '98765',
    likes: '7654',
    dislikes: '123',
    category: 'action',
    tags: ['动作', '冒险', '犯罪', '速度与激情', '范·迪塞尔'],
    uploaderId: '1',
    uploaderName: 'testuser',
    createdAt: '2024-01-01T10:00:00Z'
  },
  {
    id: '2',
    title: '速度与激情10',
    description: '《速度与激情10》是由路易斯·莱特里尔执导，范·迪塞尔、米歇尔·罗德里格兹、杰森·莫玛等主演的动作片。\n\n在这一部中，多姆·托莱多和他的家人将面临他们最致命的对手——但丁，一个发誓要为父亲的死报仇的危险人物。但丁精心策划了一场复仇计划，将多姆和他所爱的人的生活置于危险之中。\n\n影片延续了系列一贯的高燃动作场面和家庭主题，同时加入了更多令人惊叹的追车戏和特效镜头。',
    cover: 'https://picsum.photos/id/22/1280/720',
    videoUrl: 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
    director: '路易斯·莱特里尔',
    actors: ['范·迪塞尔', '米歇尔·罗德里格兹', '杰森·莫玛', '布丽·拉尔森'],
    rating: '9.2',
    releaseDate: '2023-05-19',
    duration: '140分钟',
    views: '125468',
    likes: '8932',
    dislikes: '134',
    category: 'action',
    tags: ['动作', '冒险', '犯罪', '速度与激情', '范·迪塞尔'],
    uploaderId: '1',
    uploaderName: 'testuser',
    createdAt: '2024-01-02T14:30:00Z'
  }
];

// 模拟视频数据存储 - 确保始终有默认视频数据
let mockVideos = JSON.parse(localStorage.getItem('mockVideos')) || [];

// 如果localStorage中的视频数据为空，使用默认视频并保存到localStorage
if (mockVideos.length === 0) {
  mockVideos = [...defaultVideos];
  saveVideos();
}

// 增加几个额外的示例视频，丰富内容
const additionalVideos = [
  {
    id: '3',
    title: '沙丘：第二部',
    description: '《沙丘：第二部》是由丹尼斯·维伦纽瓦执导，提莫西·查拉梅、赞达亚、丽贝卡·弗格森等主演的科幻电影。\n\n保罗·阿特雷迪斯与契尼和弗雷曼人一起，开始了他的复仇计划，对抗那些摧毁他家人的阴谋者。同时，他还必须面对一个可怕的选择：爱与命运之间的抉择，这可能会导致宇宙的毁灭。',
    cover: 'https://picsum.photos/id/110/1280/720',
    videoUrl: 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
    director: '丹尼斯·维伦纽瓦',
    actors: ['提莫西·查拉梅', '赞达亚', '丽贝卡·弗格森', '奥斯卡·伊萨克'],
    rating: '9.4',
    releaseDate: '2024-03-01',
    duration: '166分钟',
    views: '234567',
    likes: '18923',
    dislikes: '245',
    category: 'sci-fi',
    tags: ['科幻', '冒险', '剧情', '沙丘', '提莫西·查拉梅'],
    uploaderId: '2',
    uploaderName: 'scifi_fan',
    createdAt: '2024-01-05T09:15:00Z'
  },
  {
    id: '4',
    title: '奥本海默',
    description: '《奥本海默》是由克里斯托弗·诺兰执导，基里安·墨菲、艾米丽·布朗特、小罗伯特·唐尼等主演的传记片。\n\n讲述了美国物理学家罗伯特·奥本海默领导曼哈顿计划开发原子弹的故事，以及他后来因政治立场而面临的争议和困境。',
    cover: 'https://picsum.photos/id/111/1280/720',
    videoUrl: 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
    director: '克里斯托弗·诺兰',
    actors: ['基里安·墨菲', '艾米丽·布朗特', '小罗伯特·唐尼', '马特·达蒙'],
    rating: '9.0',
    releaseDate: '2023-07-21',
    duration: '180分钟',
    views: '198765',
    likes: '15678',
    dislikes: '189',
    category: 'drama',
    tags: ['传记', '剧情', '历史', '诺兰', '原子弹'],
    uploaderId: '3',
    uploaderName: 'nolan_fan',
    createdAt: '2024-01-10T16:45:00Z'
  }
];

// 将额外视频添加到mockVideos中（如果它们不存在）
additionalVideos.forEach(video => {
  if (!mockVideos.find(v => v.id === video.id)) {
    mockVideos.push(video);
  }
});
// 确保数据保存到localStorage
saveVideos();

// 原始的默认视频数据（仅作为参考，不再直接使用）
const originalDefaultVideos = [
  {
    id: '1',
    title: '速度与激情9',
    description: '《速度与激情9》是由林诣彬执导，范·迪塞尔、约翰·塞纳、米歇尔·罗德里格兹等主演的动作片。\n\n多姆·托莱多和他的团队面对一个意想不到的对手——他的亲弟弟雅各布。雅各布是一名致命的刺客和顶级车手，他与一个危险的犯罪组织合作，意图实现世界霸权。\n\n影片带来了更多令人难以置信的动作场面，包括在太空中的惊人追逐场景，同时继续探索家庭和忠诚的主题。',
    cover: 'https://picsum.photos/id/20/1280/720',
    videoUrl: 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
    director: '林诣彬',
    actors: ['范·迪塞尔', '约翰·塞纳', '米歇尔·罗德里格兹', '泰瑞斯·吉布森'],
    rating: '8.7',
    releaseDate: '2021-05-21',
    duration: '142分钟',
    views: '98765',
    likes: '7654',
    dislikes: '123',
    category: 'action',
    tags: ['动作', '冒险', '犯罪', '速度与激情', '范·迪塞尔'],
    uploaderId: '1',
    uploaderName: 'testuser',
    createdAt: '2024-01-01T10:00:00Z'
  },
  {
    id: '2',
    title: '速度与激情10',
    description: '《速度与激情10》是由路易斯·莱特里尔执导，范·迪塞尔、米歇尔·罗德里格兹、杰森·莫玛等主演的动作片。\n\n在这一部中，多姆·托莱多和他的家人将面临他们最致命的对手——但丁，一个发誓要为父亲的死报仇的危险人物。但丁精心策划了一场复仇计划，将多姆和他所爱的人的生活置于危险之中。\n\n影片延续了系列一贯的高燃动作场面和家庭主题，同时加入了更多令人惊叹的追车戏和特效镜头。',
    cover: 'https://picsum.photos/id/22/1280/720',
    videoUrl: 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
    director: '路易斯·莱特里尔',
    actors: ['范·迪塞尔', '米歇尔·罗德里格兹', '杰森·莫玛', '布丽·拉尔森'],
    rating: '9.2',
    releaseDate: '2023-05-19',
    duration: '140分钟',
    views: '125468',
    likes: '8932',
    dislikes: '134',
    category: 'action',
    tags: ['动作', '冒险', '犯罪', '速度与激情', '范·迪塞尔'],
    uploaderId: '1',
    uploaderName: 'testuser',
    createdAt: '2024-01-02T14:30:00Z'
  }
];

// saveVideos函数已在文件开头定义

// 获取所有视频
export const getAllVideos = () => {
  return [...mockVideos];
};

// 根据ID获取视频
export const getVideoById = (id) => {
  return mockVideos.find(video => video.id === id) || null;
};

// 根据用户ID获取视频
export const getVideosByUserId = (userId) => {
  return mockVideos.filter(video => video.uploaderId === userId);
};

// 根据分类获取视频
export const getVideosByCategory = (category) => {
  return mockVideos.filter(video => video.category === category);
};

// 搜索视频
export const searchVideos = (query) => {
  const lowerQuery = query.toLowerCase();
  return mockVideos.filter(video => 
    video.title.toLowerCase().includes(lowerQuery) ||
    video.description.toLowerCase().includes(lowerQuery) ||
    video.tags.some(tag => tag.toLowerCase().includes(lowerQuery))
  );
};

// 上传视频
export const uploadVideo = async (videoData, userId, userName) => {
  try {
    // 模拟网络延迟
    await new Promise(resolve => setTimeout(resolve, 1000));
    
    // 创建新视频对象
    const newVideo = {
      id: Date.now().toString(),
      title: videoData.title,
      description: videoData.description,
      cover: videoData.cover || `https://picsum.photos/id/${Math.floor(Math.random() * 100)}/1280/720`,
      videoUrl: videoData.videoUrl || 'https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4',
      director: videoData.director || '',
      actors: videoData.actors || [],
      rating: videoData.rating || '0',
      releaseDate: videoData.releaseDate || new Date().toISOString().split('T')[0],
      duration: videoData.duration || '0分钟',
      views: '0',
      likes: '0',
      dislikes: '0',
      category: videoData.category || 'general',
      tags: videoData.tags || [],
      uploaderId: userId,
      uploaderName: userName,
      createdAt: new Date().toISOString()
    };
    
    // 添加到视频列表
    mockVideos.unshift(newVideo);
    
    // 保存到localStorage
    saveVideos();
    
    return { success: true, video: newVideo };
  } catch (error) {
    console.error('Upload video error:', error);
    return { success: false, error: '视频上传失败，请稍后重试' };
  }
};

// 更新视频信息
export const updateVideo = async (videoId, updateData, userId) => {
  try {
    const videoIndex = mockVideos.findIndex(video => video.id === videoId);
    
    if (videoIndex === -1) {
      return { success: false, error: '视频不存在' };
    }
    
    // 检查权限
    if (mockVideos[videoIndex].uploaderId !== userId) {
      return { success: false, error: '无权修改此视频' };
    }
    
    // 更新视频信息
    mockVideos[videoIndex] = {
      ...mockVideos[videoIndex],
      ...updateData
    };
    
    // 保存到localStorage
    saveVideos();
    
    return { success: true, video: mockVideos[videoIndex] };
  } catch (error) {
    console.error('Update video error:', error);
    return { success: false, error: '视频更新失败，请稍后重试' };
  }
};

// 删除视频
export const deleteVideo = async (videoId, userId) => {
  try {
    const videoIndex = mockVideos.findIndex(video => video.id === videoId);
    
    if (videoIndex === -1) {
      return { success: false, error: '视频不存在' };
    }
    
    // 检查权限
    if (mockVideos[videoIndex].uploaderId !== userId) {
      return { success: false, error: '无权删除此视频' };
    }
    
    // 从列表中删除
    mockVideos.splice(videoIndex, 1);
    
    // 保存到localStorage
    saveVideos();
    
    return { success: true };
  } catch (error) {
    console.error('Delete video error:', error);
    return { success: false, error: '视频删除失败，请稍后重试' };
  }
};

// 增加视频观看次数
export const incrementVideoViews = (videoId) => {
  const video = mockVideos.find(v => v.id === videoId);
  if (video) {
    video.views = (parseInt(video.views) + 1).toString();
    saveVideos();
  }
};

// 点赞/取消点赞视频
export const toggleLikeVideo = (videoId, isLike) => {
  const video = mockVideos.find(v => v.id === videoId);
  if (video) {
    if (isLike) {
      video.likes = (parseInt(video.likes) + 1).toString();
    } else if (parseInt(video.likes) > 0) {
      video.likes = (parseInt(video.likes) - 1).toString();
    }
    saveVideos();
  }
};

// 获取视频分类
export const getVideoCategories = () => {
  return [
    { value: 'action', label: '动作' },
    { value: 'comedy', label: '喜剧' },
    { value: 'drama', label: '剧情' },
    { value: 'sci-fi', label: '科幻' },
    { value: 'romance', label: '爱情' },
    { value: 'horror', label: '恐怖' },
    { value: 'documentary', label: '纪录片' },
    { value: 'animation', label: '动画' },
    { value: 'general', label: '其他' }
  ];
};